解题思路:
本题是考察使用链表方法,使用两重while循环语句,对链表的结点数据进行升序排列。
第一处:由于外循环变量使用p指针,内循环变量使用q指针,所以q指向必须指向p的next
指针,因此应填写:p.next。
第二处:判断内循环q指针是否结束,所以应填:q。
第三处:外循环控制变量p指向自己的next指针,所以应填:p.next。
***************************************************
给定程序MODI1.C中函数fun的功能是: 将s所指字符串中的字母转换为按字母
序列的后续字母(但Z转换为A, z转换为a),其它字符不变。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
void fun (char *s)
{
while(*s!=’@’)
{ if(*s>=’A’ & *s<=’Z’ || *s>=’a’ && *s<=’z’)
{ if(*s==’Z’) *s=’A’;
else if(*s==’z’) *s=’a’;
else *s += 1;
}
(*s)++;
}
}
main()
{ char s[80];
printf("\n Enter a string with length < 80. :\n\n "); gets(s);
printf("\n The string : \n\n "); puts(s);
fun ( s );
printf ("\n\n The Cords :\n\n "); puts(s);
}
解题思路:
第一处: 使用while循环来判断字符串指针s是否结束,所以应改为:while(*s)。
第二处: 取字符串指针s的下一个位置,所以应改为:s++;。
***************************************************
请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。
例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动
后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define N 80
void fun(int *w, int p, int n)
{
}
main()
{ int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,p,n=15;
printf("The original data:\n");
for(i=0; i printf("\n\nEnter p: ");scanf("%d",&p);
fun(a,p,n);
printf("\nThe data after moving:\n");
for(i=0; i printf("\n\n");
NONO();
}